package gui;

import gui.CadastroContatoGUI.AcaoBotao;

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.List;

import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFormattedTextField;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.table.TableColumn;

import model.ContatoBeijamim;
import utility.Fachada;
import utility.Mascara;
import control.ContatoTableModel;

public class AtualizaContatoGUI extends JDialog {

	JPanel painel;

	JLabel jlTitulo;
	JLabel jlNome;
	JLabel jlTelefoneFixo;
	JLabel jlCelular;
	JLabel jlEmail;

	Mascara mascara = new Mascara();

	JTextField jtfNome;
	JFormattedTextField jtfTelefoneFixo;
	JFormattedTextField jtfCelular;
	JTextField jtfEmail;

	JButton jbSalvar;
	JButton jbFechar;
	
	ContatoBeijamim c = new ContatoBeijamim();
	ContatoTableModel modelo;
	int linhaSelecionada;
	
	public AtualizaContatoGUI(ContatoTableModel md, Long id, int linha) {

		modelo = md;
		linhaSelecionada = linha;

		c = Fachada.getInstace().getContatoController().buscar(id);
		
		setTitle("Atualiza Contato");
		setSize(600, 500);
		setLocationRelativeTo(null);
		setResizable(false);
		setModal(true);

		Conteudo();

	}

	public void Conteudo() {

		painel = new JPanel();
		painel.setLayout(null);

		jlTitulo = new JLabel("Atualizar Contato");
		jlNome = new JLabel("Nome Completo");
		jlTelefoneFixo = new JLabel("Telefone Fixo");
		jlCelular = new JLabel("Celular");
		jlEmail = new JLabel("E-mail");
		
		jtfNome = new JTextField();
		jtfNome.setText(c.getNomeComleto());
		
		jtfTelefoneFixo = new JFormattedTextField(mascara.Mascara("##.####-####"));
		jtfTelefoneFixo.setText(c.getTelefoneFixo());
		
		jtfCelular = new JFormattedTextField(mascara.Mascara("##.####-####"));
		jtfCelular.setText(c.getCelular());
		
		jtfEmail = new JTextField();
		jtfEmail.setText(c.getEmail());
		
		jbSalvar = new JButton("ALTERAR");
		jbFechar = new JButton("FECHAR");

		jlTitulo.setBounds(90, 10, 300, 20);
		jlNome.setBounds(10, 90, 300, 20);

		jlTelefoneFixo.setBounds(10, 150, 300, 20);
		jlCelular.setBounds(10, 210, 300, 20);
		jlEmail.setBounds(10, 270, 300, 20);

		jtfNome.setBounds(10, 110, 300, 30);
		jtfTelefoneFixo.setBounds(10, 170, 300, 30);
		jtfCelular.setBounds(10, 230, 300, 30);
		jtfEmail.setBounds(10, 290, 300, 30);

		jbSalvar.setBounds(10, 350, 100, 40);
		jbSalvar.addActionListener(new AcaoBotao());

		jbFechar.setBounds(210, 350, 100, 40);
		jbFechar.addActionListener(new AcaoBotao());

		painel.add(jlTitulo);
		painel.add(jlNome);
		painel.add(jlTelefoneFixo);
		painel.add(jlCelular);
		painel.add(jlEmail);

		painel.add(jtfNome);
		painel.add(jtfTelefoneFixo);
		painel.add(jtfCelular);
		painel.add(jtfEmail);

		painel.add(jbSalvar);
		painel.add(jbFechar);

		setContentPane(painel);

	}

	class AcaoBotao implements ActionListener {

		@Override
		public void actionPerformed(ActionEvent e) {

			if (e.getSource() == jbSalvar) {
				
				ContatoBeijamim contato = new ContatoBeijamim();
				contato.setId(c.getId());
				contato.setNomeComleto(jtfNome.getText().toUpperCase());
				contato.setTelefoneFixo(jtfTelefoneFixo.getText());
				contato.setCelular(jtfCelular.getText());
				contato.setEmail(jtfEmail.getText().toUpperCase());
				
				Fachada.getInstace().getContatoController().alterar(contato);
				
				modelo.updateContato(linhaSelecionada, contato);
	            
				dispose();
	            
			}else if(e.getSource() == jbFechar){
				
				dispose();
			}
			
		}

	}

}
